const COS = require('cos-js-sdk-v5')
import axios from 'axios'
import token from '../apis/refresh_token'

const cos = new COS({
    SecretId: 'AKIDgBQTIn46rLZXEesviETR9alfJgmbATWJ',
    SecretKey: 'Xpqa3GCsHPHrACySfbHgofGadgSyDBsJ',
})
const cosOps = {
    
    getAuthorization: function (callback) {
        // 用axios替换这个
        var url = '/back/cos_token'; // url替换成您自己的后端服务
        // var xhr = new XMLHttpRequest();
        token.request().then(() => {
            axios.get('/back/cos_token', {
                headers: {
                    'token': localStorage.getItem('token')
                }   
            }).then((res) => {
                console.log(res.data)
                cos.SecretId = res.data.SecretId
                cos.SecretKey = res.data.SecretKey
                if (callback) {
                    callback ()
                }
            }).catch((err) => {
                console.log('获取秘钥失败', err)
            })
        })
        // xhr.open('GET', url, true);
        // xhr.onload = function (e) {
        //     try {
        //         var data = JSON.parse(e.target.responseText);
        //         var credentials = data.credentials;
        //     } catch (e) {
        //     }
        //     if (!data || !credentials) {
        //       return console.error('credentials invalid:\n' + JSON.stringify(data, null, 2))
        //     };
        //     callback({
        //       TmpSecretId: credentials.tmpSecretId,
        //       TmpSecretKey: credentials.tmpSecretKey,
        //       SecurityToken: credentials.sessionToken,
        //       // 建议返回服务器时间作为签名的开始时间，避免用户浏览器本地时间偏差过大导致签名错误
        //       StartTime: data.startTime, // 时间戳，单位秒，如：1580000000
        //       ExpiredTime: data.expiredTime, // 时间戳，单位秒，如：1580000000
        //   });
        // };
        // xhr.send();
    },
    
    upload: function (fileObject, callback) {
        let username = localStorage.getItem('pta_username')
        if (!username) {
            return
        }
        this.getAuthorization(function () {
            console.log('?????')
            cos.putObject({
                Bucket: 'epic-1306658948', /* 必须 */
                Region: 'ap-chengdu',     /* 存储桶所在地域，必须字段 */
                Key: `/${username}/${new Date().getSeconds()}`,      //存储路径        /* 必须 */
                StorageClass: 'STANDARD',
                Body: fileObject, // 上传文件对象
                onProgress: function(progressData) {
                    console.log('正在上传', JSON.stringify(progressData));
                }
            }, function(err, data) {
                // console.log(err || data);
                if (!err) {
                    console.log('上传成功')
                    callback(data)
                    // src = 'https://' + data.location
                }
            });
        })
    }

}

export default cosOps